﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {

            // Test();
            // Test2();
            // Test3();
            Test4();
            //            5、用户输入手机号码，请验证其合法性。
            //手机号码规则：
            //  最开头 + 86可有可无
            //  13开头第三位是 0 - 9
            //  14开头第三位是 5或7
            //  15开头第三位是 0 - 9不包含4
            //  17开头第三位是 678中的一个
            //  18开头第三位是 0 - 9
            //  剩下的8位，都是0 - 9的数字。
            //while (true)
            //{
            //    Console.WriteLine("请输入手机号：");
            //    string str = Console.ReadLine();
            //    //(\+86)?(13\d{1}|14[5-7]{1}|15[0-3|5-9]{1}|17[6-8]{1}|18\d{1})(\d{8})
            //    if (Regex.IsMatch(str, @"^(\+86)?(13\d{1}|14[5|7]{1}|15[0-3|5-9]{1}|17[6-8]{1}|18\d{1})(\d{8})$"))

            //    {
            //        Console.WriteLine("正确！！");
            //    }
            //    else
            //    {
            //        Console.WriteLine("错误！！！");
            //    }

            //}
           
        }
        static void Test() 
        {
            // 1、生成0 - 5之间的随机小数，保留两位小数（必须是2位）。
            Random ran = new Random();
            for (int i = 0; i < 30; i++)
            {
                double d = 0+ran.NextDouble()*(5-0);
                Console.WriteLine(d.ToString("f2"));

            }
           

         
            

          
        
        }
        static void Test2() 
        {
            //2、生成4 - 7之间的随机小数，保留两位小数。
            Random ran = new Random();
            for (int i = 0; i < 50; i++)
            {
                double d = 4 + ran.NextDouble() * (7 - 4);
            //Console.WriteLine(Math.Round(d,2));有bug
            Console.WriteLine(d.ToString("f2"));

            }
            


        }
        static void Test3() 
        {
            //3、生成一个随机整型数组，长度是10，内容是1~10，数组内容不重复。
            int[] arr = new int[10];
           Random ran = new Random();
            for (int i = 0; i < arr.Length; i++)
            {
                int a = ran.Next(1 ,11);
                bool b = false;
                for (int j = 0; j < i; j++)
                {
                    if (arr[j]==a)
                    {
                        b = true;
                    }
                 
                }
                if (b==false)
                {
                    arr[i] = a;
                }
                else
                {
                    i--;
                }
            }
            foreach (var item in arr)
            {
                Console.WriteLine(item);
            }
            
        }
        static void Test4()
        {
            //            4、用户输入邮箱，请验证其合法性。
            //          1、邮箱一定需要 @符号

            //  2、根据 @符号分为两部分，“前半部分 @ 后半部分”，
            //前半部分可以数字、字母、下划线、中划线、 .（符号点）。但是.（符号点）不能 用在开头也不能用在结尾；

            //      后半部分可以数字、字母、下划线、中划线、.（符号点），且符号点是必须的，至少出现一次，但不能连续出现，且符号点不能在开头，也不能在结尾。
            //后半部分的符号点后面只能是：com、org、net、edu、mil、tv、biz、info
            while (true)
            {
                Console.WriteLine("请输入邮箱");
                string str = Console.ReadLine();
                if (Regex.IsMatch(str, @"^([\w]|(-)(\.|[\w]))*@([\w]+(.(com|org|net|edu|mil|tv|biz|info)))$"))
                {
                    Console.WriteLine("输入正确！！");
                }
                else
                {
                    Console.WriteLine("输入错误！！");
                }
            }
           

        }
    }
}
